package com.atguigu.java;

/**
 * 多线程的创建，方式一：继承于Thread类
 * 1.创建一个继承于Thread的子类
 * 2.重写Thread类的run()--->将此线程的操作声明在run方法中
 * 3.创建Tread类的子类的对象
 * 4.通过子类调用start()
 * <p>
 * 例子：遍历100以内的所有偶数
 */

//1.创建一个继承于Tread类的子类
class MyThread extends Thread {
    //重写run方法
    @Override
    public void run() {
        for (int i = 0; i <= 100; i++) {
            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + i);
            }
        }
    }
}

public class TreadTest {
    public static void main(String[] args) {
        //3.创建Tread类的子类的对象
        MyThread t1 = new MyThread();

        //4.通过子类调用start()：①启动当前线程 ②调用当前的run()方法
        t1.start();
        //问题一：我们不能通过直接调用run()的方式启动线程。
//        t1.run();

        //问题二：再启动一个线程，遍历100以内的偶数.不可以让已经start()的线程。会报IlleagalThreadStateException
//        t1.start();
        //我们需要重新创建一个对象
        MyThread t2 = new MyThread();
        t2.start();

        //如下操作任然在main线程中执行的
        for (int i = 0; i <= 100; i++) {
            if (i % 2 != 0) {
                System.out.println(Thread.currentThread().getName() + i + "********main()***");
            }
        }
    }
}
